This invention relates to communications over networks and internetworks. More particularly, this invention relates to the filtering and routing of communications frames on such networks.
FIG. 1 is an illustration of a typical communications internetwork 100 of the prior art. In FIG. 1, processors 110a, 110b, . . . , 110n interconnect by means of network 120. I/O controllers 130a, 130b, . . . , 130n also connect to network 120.
Within their respective processors 110, I/O processes are the initial consumers of the data transported over the network 120.
Processors 111a, 111b, . . . , 111n and the network 120 connect to the internetwork 121 by means of the gateways 131 and 130, respectively.
In the multiprocessor systems available from the assignee of the instant invention, whose constituent processors 110 co-operate to distribute the workload among themselves, the I/O processes are ordered such that one such process is designated the primary I/O process. Each of the controllers 130 communicates frames from the network 120 directly to only (the processor 110 running) that primary I/O process. The primary I/O process has the responsibility to determine the actual destination processor 110 of a frame and to forward that frame from its processor 110 to the destination processor 110. Processor-to-processor copying effects the forwarding.
Funneling all frames to the processor 110 of the primary I/O process places a significant burden on that processor 110. Further, assuming that the actual destinations of the frames are evenly distributed among the processors 110 of the multiprocessor system, at least one-half of the frames forwarded to the processor 110 of the primary I/O process 110 must be subjected to an interprocessor copy, tying up the resources of both the primary I/O process processor 110 and the destination processor 110, as well as the network 120. As the number of processors in the multiprocessor system increases beyond two, the percentage of frames subjected to an interprocessor copy increases.
Accordingly, there is a need for a method to deliver a frame directly to the actual destination processor in a system of cooperating multiple processors.
Another goal is a multi-processor computer system which is scalable (particularly up) wherein the distribution of work is easily distributed across such scaling.
These and other objects and goals of the invention will be readily apparent to one of ordinary skill in the art on the reading of the background above and the description below.
According to one aspect of the invention, network packets are routed at a network adapter to appropriate destinations utilizing a configurable filter tree.
According to another aspect of the invention, the filter tree includes nodes for testing specified packet header fields and routing the packets according to values encoded by the packet header fields.
According to another aspect of the invention, an if-node has one input path and first and second if-node output paths. An if-type packet header is tested and the packet is routed along either the first or second path depending on the value encoded by the if-type field.
According to another aspect of the invention, a case-node has one input path and more than two case-node output paths. A case-type packet header is tested and the packet is routed along one of the case-node output paths depending on the value of the case-type packet header.
According to another aspect of the invention, a leaf-node routes incoming packets to a designated destination.
According to a further aspect of the invention, the case-node can be selected to test packets for source and destination network addresses and ports and route packets having selected source and destination network addresses and ports to a selected destination port thereby establishing a virtual circuit.
Other features and advantages of the invention will be apparent in view of following detailed description and appended drawings.